The present invention relates generally to the field of computer installation and repair.
Synchronization is the task of interconnecting two personal computers and transferring information between them to cause each of them to have a full complement of up-to-date information. For example, if an individual has a pocket PC or other comparable portable computer or device (hereinafter “portable device”) and also a portable or desktop office computer or workstation or other host (hereinafter “host”), a synchronization program would transfer information back and forth between them, causing the two computers to exchange names, addresses, calendar entries, notes, e-mails, word processing documents, etc., until both computers contained complete, matching sets of this information. An essential part of this task is the establishment of a data path between the two computers. Just as essential is the establishment of data paths through the layers of software, given the many differing protocols and settings.
Synchronization must be accomplished over some communication path between two computers. Virtually every computer made today has, or can be equipped, with what is commonly called an EIA Standard RS-232c serial port that can send information out of pin 2 and receive back information on pin 3 of an industry-standardized connector, with pin 6 serving as the signal ground (other wires provide flow control). More generally, “serial communication” involves sending a standardized coding of characters over a wire or cable connecting standardized ports.
In recent years, other standardized ways to transfer data between computers have emerged. “Parallel communication” can be carried out over a multi-wire cable having eight bidirectional data carrying wires (plus additional control wires to provide timing and flow and direction control) such that an entire byte of eight bits can be transferred all at once, in accordance with several upwardly-compatible protocols known as: Centronics (a bidirectional parallel printer port standard and connector developed by the company Centronics), SPP (standard parallel port, also known as the IBM PC and IBM PC AT parallel port, using an RS-232c connector), PS/2 (bidirectional parallel port design introduced on the IBM Model PS/2 computers), EPP (enhance parallel port), and ECP (extended capabilities parallel port), all of which have been subsumed as component parts of the standard IEEE-1284.
Modern operating systems, such as Microsoft's WINDOWS XP and Apple's SYSTEM X, automatically catalog and keep track of serial and parallel ports, assigning them symbolic names such as COM1 and COM2 for serial ports and LPT1 and LPT2 for parallel ports, and also requiring programs to register to use them and reporting to programs whether a given port is or is not locked for use by some particular software program. Thus, software layers are added to these two hardware protocols, increasing their complexity. A port may be unavailable to program A because the operating system has granted its use to program B.
Recently, both the serial and parallel communication protocols just described have given way to faster serial communication protocols, having their own special physical connectors or ports (as they shall be called hereafter), that can interconnect multiple computers and other devices such that data sent serially may be addressed to a particular computer or device sharing the serial communication path. Such protocols are defined by both hardware standards for ports and cables and also by software protocols including protocols for the packetizing and addressing of data.
Ethernet, the granddaddy of the so-called LAN (local area network) protocols, was developed years ago for interconnecting computers and printers and servers as well as communication routers into local area networks. Ethernet may also be used for direct computer-to-computer communication. Layers of communication software implementing higher- and lower-level communication protocols are normally required when Ethernet is used. For example, programs wishing to communicate via Ethernet may call upon one of the program-callable protocols Winsock (Windows sockets network programming) or NetBIOS (network basic input and output system). These, in turn, send out messages utilizing the TCP (transmission control protocol) and UDP (user datagram protocol) protocols which in turn break the messages up into addressed data packets using the IP (Internet protocol) protocol. The IP packets are finally broken up into Ethernet protocol packets which are delivered over the Ethernet network. Each of these protocols adds a layer of software as well as a layer of complexity to the resulting communications system.
The Universal Serial Bus or USB protocol, both in its original version and in its newer high-speed version, has recently become the most widely used protocol for interconnecting computers and other devices over short distances. USB connectors require only two wires, and the ports are very compact. Connectors may be plugged in and later unplugged while the computers are running. As with Ethernet, multiple devices may be connected to a computer's USB ports, and addressed and packetized messages may be sent from one device to another.
When either the Ethernet or the USB protocols are used in conjunction with modern operating systems, the operating systems are able to learn the identities of all local devices that are connected into the Ethernet or USB network. For example, when a new computer or device is plugged into one of a computer's USB ports, the operating system immediately identifies the connected computer or device and then prompts the user through the process of installing any required device driver software. The operating system also keeps a record of what devices are connected to each computer's USB ports through use of special software called a device manager. This feature of Windows XP is called “plug and play.”
Several wireless communication protocols have recently become standardized and are now widely used. The first of these is the IrDA (infrared Data Association) infrared protocol which supports wireless communication over short “line of sight” distances (typically 3 to 6 feet). IrDA systems generally use a fairly simple serial communications protocol such that they generally operate from the perspective of application software running on a computer as if the IrDA linkage was simply a serial port interconnection between two computers or between a computer and a device (for example, a printer).
Quite similar to IrDA in its basic protocols is the Bluetooth wireless radio protocol which also is designed to work over short distances, providing intercommunication between a limited number of computers and other devices that are close together. The software protocols associated with Bluetooth, most notably the RFCOMM protocol which can emulate the various signals associated with RS-232 serial communication, are able to emulate serial port communication much as do the protocols of IrDA. Hence, a Bluetooth wireless radio connection, like an IrDS wireless infrared connection, may be used as a direct replacement for a serial communications interconnection between two computers or between a computer and a device.
The Bluetooth protocol also supports several higher-level protocols which have yet to come into widespread use. A Service Discovery Protocol (SDP) can provide a discovery process by which devices and services can be located over a Bluetooth network. A Serial Port Profile (SPP) defines operations to establish RFCOMM serial communications between two peer devices. A generic object exchange profile (GOEP) can facilitate synchronization operations, such as those discussed below; and the related synchronization profile (SP) can facilitate synchronization of files, notes, calendars, etc. between computers and also between computers and cellular telephones. A file transfer profile (FP) can facilitate the exchange of files and documents between computers.
The Bluetooth protocol is now appearing on desktop and portable host computers and also on handheld computers or pocket PCs as well as on cellular telephones and other such portable devices. Cellular telephones are acquiring pocket PC features, including the management of address books, notepads, and calendars and also e-mail and voice-mail messages. A new generation of portable devices is emerging with hard disk drives as well as all the features of cellular telephones and pocket PCs.
Another wireless radio protocol is IEEE 802.11b and its newer, faster counterpart, IEEE 802.11g. These two wireless protocols are normally used to extend TCP/IP local area networks to portable computers, to portable devices, and to computers and printers located away from Ethernet cabling. This protocol is also used for direct computer-to-computer communication for such purposes as file sharing and synchronization. Generally speaking, this protocol links computers together into a TCP/IP-UDP/IP type of network, where each computer has an assigned IP (Internet protocol) address and where communication between two applications running on two different platforms is by means of TCP messages and UDP datagrams carried by addressed IP packets.
When a program running on a portable or desktop PC equipped with the Windows XP operating system communicates with a pocket PC or other portable device equipped with the Windows CE operating system, the program may typically calls a set of functions named RAPI (remote access programming interface) or another set of functions named Winsock (Windows sockets network programming) that utilize the TCP messaging protocol and UDP datagram protocol which in their turn utilizes the IP addressed data packet protocol to communicate over whatever communication linkage has been established between the two PCs. The linkage could be an Ethernet cable, an IEEE 802.11b or g radio linkage, some combination of these two with a radio base station or Ethernet hub, a USB cable, a serial communications cable, an IrDA infrared optical linkage, or a Bluetooth radio linkage. Other types of cables and linkages will undoubtedly be developed in the future. Any such linkage may be used, and the communicating programs are normally unaware of which type of linkage has been selected by the user.
The examples presented in the discussion which follows illustratively focuses upon the use of either RS-232c ports and cables or USB ports and cables to provide communications between a PC or, more generally, a host, and a pocket PC or, more generally, a portable device for the purpose of synchronization. The use of Ethernet cabling and IEEE 802.11b or g, possibly in combination, is also discussed as another example. The IrDA infra-red and Bluetooth radio protocols are treated in this discussion essentially as alternative serial communications linkage protocols, since that is how they are normally used today. Bluetooth usage is likely to evolve into something more similar to the USB protocol, and special features of Bluetooth designed to optimize synchronization tasks are likely to be adopted as Bluetooth matures. The IEEE 802.11b and g radio protocols are essentially indistinguishable from Ethernet cable connections once they are properly set up and operating. While synchronization is the primary application discussed below, other applications involving intercommunication between two or more computers to coordinate operations, particularly in client-server applications, can also benefit from the teachings presented below.
In brief summary, there are a number of different, standardized ways in which communications may be established between, for example, a desktop or portable computer or other host and a pocket PC or other portable device by means of cable or optical or radio linkages. Once such a communication is established, then compatible applications should be able to communicate back and forth between the two computers, exchanging commands and data or files as necessary to perform tasks.
However, many problems can arise that can prevent or interfere with such communication—so many different types of problems that ordinary users of computers are frequently baffled in their efforts to solve all of the problems. For example, the task of synchronizing the calendar entries, the contact information, the task lists, and the notes contained on a portable device with those contained in a desktop or portable PC often fails because of hardware problems, software problems, and user-adjustable settings problems. Support personnel receive many more calls from computer owners seeking help in getting their portable devices to synchronize properly with other computers than they do from PC owners generally.
To figure out what is wrong and to correct problems of this type, the computer user, or the support person, needs information that may have to be gathered from many different sources—information defining the specific settings of the two application programs which are trying to communicate, information indicating whether the installation of those programs was properly done and whether the correct versions have been selected, and information defining the communication parameters and user settings buried within layers of communication software. Some information may have to be obtained from the registries of system and application settings or from the logs left by programs to show whether they were properly installed and tracking what they have tried to do and with what degree of success. Additionally, tests may have to be run on both of the computers to determine whether they can actually communicate. All of this information must be analyzed and reported in some meaningful fashion, understandable to users and to support specialists. Is the serial port or USB cable broken or not plugged in properly? Is a radio or infra-red linkage not working? Are the application programs mis-configured by the user? Are they installed properly? There may even be problems relating to the specific order in which the computers were linked together and then turned on.